Medical treatment apparatuses like, for example, dialysis apparatuses are controlled or regulated by means of a firmware which is normally elaborate. This software often encompasses several thousand program lines which regularly are programmed in advanced programming languages such as C++, which are not intuitively accessible. The source code on which such software is based usually gets more elaborate and often more complex with each software update and with each new software version. Modifications to the software such as are required, for example, for an update, therefore have to be entered by a highly qualified programmer. As creating software still is extremely individual work, modifications often have to be carried out even by the same programmer who has already programmed the preceding software versions, if additional effort and expenses for training another programmer for the already existing program design or style should be avoided. The effort in carrying out necessary modifications to the software is, however, extraordinarily high in any case. The same applies to the expenses associated therewith.
Modifications to the software due to changed requirements for the process of the medical treatment apparatus operated with the software require after each modification qualifying or approving not only the modified functions, but also all previous functions of the whole device for verifying its perfect functioning. This may, with more complex systems such as for example dialysis apparatuses, lead to an often immense number of cases to be tested and the associated effort.
As for changing the flow or process behavior by modifying the software, up to date programming skills are necessary; only software developers can modify the flow behavior of the firmware. Process developers who usually are not software specialists, however, often cannot carry out these modifications, even though they in turn know the medical treatment methods best and are especially well-trained for modifying or changing the flow behavior of the corresponding apparatuses. Also this fact leads to effort and expenses due to the required coordination between programmer and process developer. Furthermore, the error probability of the work increases due to communication difficulties.